Automation triggers, filters, and frequencies

Updated

Automation triggers determine who enters your automations and when. This page describes different kinds of triggers and why you might use them.

If you’re just getting started, we’ve created a quick video to help you understand what each automation trigger does. To learn about object and relationship triggers, read on.

How it works

An automation trigger determines who enters your automation and when. You can set up filters to narrow your trigger criteria. Profiles need to meet your trigger and filter criteria to enter your automation. You can also set your exit conditions to make profiles exit your automation when they quit matching your trigger and filter criteria, ensuring that your automation is relevant to your audience.

If you want to let profiles experience an automation multiple times, you can set frequency settings, determining how often a profile can trigger an automation.

flowchart LR a{Does a profile meet
trigger conditions?}-->|yes|c{Does profile meet
filter conditions?} c-->|yes|d[profile enters
automation] a-.->|no|i[profile doesn't
enter automation] c-.->|no|i

What kinds of actions trigger an automation?

Your automation trigger determines who enters your automation and when. Most triggers are based around profiles, like when they match certain criteria. Typically, these profiles are the subject of your automation—you’ll send them messages, set their attributes, and so on.

The automation trigger has a left hand column with a list of trigger categories including All Triggers, Profiles, Object Types indicated by their names, Dates, and Webhooks. All Triggers is selected and shows a list of Profiles triggers: segment change, event, and form submission.
The automation trigger has a left hand column with a list of trigger categories including All Triggers, Profiles, Object Types indicated by their names, Dates, and Webhooks. All Triggers is selected and shows a list of Profiles triggers: segment change, event, and form submission.

Trigger options

Attribute or Segment

Attribute or Segment lets you trigger automations based on profileThe representation of a person or group in Customer.io. People and custom objects both have their own profiles, but we bill based on the total number of profiles in your account. attributes, segmentsA segment is a group of people in your workspace. Use segments to trigger automations, track membership over time, or fine-tune your audience. There are two types of segments: data-driven and manual. Data-driven segments automatically update when people start or stop matching criteria. Manual segments are static., or both. Use segments if you want to track profiles that match this criteria over time or reuse the criteria as a trigger for other automations. You can set segment criteria based on your audience’s attributes, events, etc. Use attributes alongside segments or to quickly target specific profile attributes without creating or finding a segment. This trigger is best for automations like recurring NPS surveys, onboarding drip automations, and inactivity reminders.

Event

An eventSomething that a person in your workspace did. Events can trigger automations, add people to segments, etc, and you can use properties from events to personalize messages.-triggered automation helps you respond to a profile’s activity in your app or website. For instance, you could trigger an automation based on a user abandoning their cart, viewing a specific page on your app, or completing an order.

Form submission

Form submission lets you take advantage of formConnected Forms in Customer.io allow you to automatically trigger automations, send data to other services, and add or update people when they submit forms on your website or in your app. responses to trigger automations. You can connect a form to your workspace or integrate with Facebook Lead Ads. Use this type of automation to send messages to nurture new leads or respond to support requests.

Object updated

Use Object updated when you want profiles to enter the automation every time an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. is updated in your workspace. For instance, if you were tracking accounts as objects and updated the name of one, you could notify everyone that managed the account that the account went through a rebrand. Keep in mind, only profiles enter into journeys, not objects.

You’ll see this as “Object_type_name updated” in your trigger list. In the image above, “Course updated” is an example.

When you use objects to trigger automations, you can choose who enters into the automation. The audience could be:

  • every profile in the object
  • certain profiles related to the object
Relationship added or changed

A relationship is the association between an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. and a profile. Use this trigger type when you want profiles to enter an automation after their relationship to an object has changed. For instance, if you track accounts as objects, this could mean they joined an account (profile added), or they are now a manager (relationship changed).

You’ll see this as “Profile added” or “Relationship changed” in your trigger list. In the image above, “Profile added to Course” and “Relationship changes with Course” are examples.

When you use relationships to trigger automations, you can choose who enters into the automation. That is, the recipient of the message in this kind of automation doesn’t have to be the profile in the relationship that triggered it. The audience could be:

  • the profile whose relationship to the object is updated (default)
  • every profile in the object
  • certain profiles related to the object
Important date

An important date triggers automations on a specific or relative date based on an attributeA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. that profiles in your audience have. You can trigger based on any customer attributes that are properly formatted dates. This is useful for recurring automations like birthdays, anniversaries, subscription renewals, and payment reminders.

Webhook

A webhook triggers a automation based on data from an external service. The purpose of your automation is to manipulate this data and associate it with profiles, much like you can with Zapier or Segment, but entirely within an automation. Because data, not profiles, is the subject of your automation, webhook-triggered automations don’t typically send messages directly; rather, they let you associate data with profiles, which can trigger subsequent automations.

Webhook automations help you perform one-to-many interactions with your audience, like notifying a group of profiles when you post a job or a product becomes available that a cohort of your audience is interested in.

Triggers with segments

Our attribute or segment trigger lets you launch automations based on profiles’s attributes—like plan type, region, or signup date—without needing to build a segment first. And when you need more control, you can still use segments alongside attributes.

This new trigger launched in April 2025. Any automations made with our legacy segment trigger will continue to run as expected. You can still edit their triggers and duplicate legacy segment-triggered automations too.

Legacy segment triggerLatest segment trigger
Outlines what differentiates a legacy segment trigger from the latest segment trigger.
Outlines what differentiates a legacy segment trigger from the latest segment trigger.
Outlines what differentiates the latest segment trigger from the legacy segment trigger.
Outlines what differentiates the latest segment trigger from the legacy segment trigger.

Differences between triggers: attribute or segment vs segment change

The new attribute or segment trigger gives you more flexibility and control over when profiles enter your automation. While it works differently from our legacy segment trigger, it’s designed to simplify setup and avoid unnecessary journeys. Here’s what’s different:

  • Filter conditions are now part of the trigger conditions.
  • You may need to add time-based conditions to ensure the right group of profiles trigger your automations.

Filter conditions are now part of the trigger conditions

In the legacy segment trigger, you could add filters to your trigger conditions to narrow your audience further. Profiles would enter the automation when they matched the trigger segment—but they wouldn’t move through the workflow unless they also matched the filters.

This often led to unnecessary journeys: profiles would log as having entered the automation, but never move forward because they didn’t meet your filters. Eventually, they’d exit the journey without receiving any messages.

With the new attribute or segment trigger, you define previous filter conditions in the trigger itself. That means:

  • Profiles only enter the automation when they meet all your criteria.
  • You avoid incomplete journeys and keep your reporting clean.

Add time-based logic to target the right users

You may need to add time-based conditions to ensure the right group of profiles trigger your automations.

The legacy segment trigger included automatic “matchtime” logic — it looked at the following to decide when profiles should enter an automation:

  • When relevant attributes were last updated
  • When relevant events were last sent
  • The timestamp itself of relevant date/time attributes

The new trigger doesn’t do this automatically. Instead, you define when profiles should enter using time-based conditions in your trigger or delays in your workflow. This gives you more control and predictability.

Here’s how this works in practice:

Migrate users and backfill data

Imagine you have a running automation that uses a legacy segment trigger. Profiles enter when they join the segment “Signed Up.” The segment is defined by a profile’s attribute created_at is a timestamp. Then you migrate some users from another platform to Customer.io and backfill their data. If their created_at timestamps are more than 24 hours before now, those profiles would not trigger the automation.

With the new attribute or segment trigger, profiles will enter the automation as long as they meet the trigger conditions—regardless of how old their data is. That means backfilled users could start the automation right away.

To exclude profiles with older timestamps, add a time-based trigger condition like Attribute: created_at is a timestamp after a relative date of 1 day ago.

att-or-seg-timestamp-condition-1-day-ago.png
att-or-seg-timestamp-condition-1-day-ago.png

This ensures that only profiles whose created_at timestamp is within the last day will trigger the automation.

Delay profiles at the beginning of your automation

Imagine you have an automation that uses a legacy segment trigger. Profiles enter when they join the segment “Trial users” which is based on the condition plan_type is equal to trial. The first step in your automation is a 3-day Wait until block. You start the automation and include current matches in the audience.

If someone’s plan_type updated to trial 1 day ago, matchtime logic would apply. That profile would only wait 2 more days because of the time of their attribute update.

With the new attribute or segment trigger, matchtime isn’t used. Profiles enter the automation the moment they meet the trigger condition and would wait the full 3 days.

If you want to time the delay based on when someone actually started their trial, pass a timestamp attribute like trial_start_date, and use it in a condition of a Wait until block at the beginning of your automation: trial_start_date is a timestamp after a relative date of 3 days ago.

att-or-seg-timestamp-condition-trial-wait.png
att-or-seg-timestamp-condition-trial-wait.png

This gives you full control over when profiles move forward, based on the actual timing of their trial—not just when they entered the automation.

Wait until a future date

Both of the previous examples showcase matchtimes in the past. Let’s take a look at one more example where matchtimes are in the future.

Imagine you have an automation that starts when someone purchases a new subscription. The automation uses a legacy segment trigger where the segment is defined by the condition plan_start is a timestamp. Let’s say someone’s plan_start is in two days.

In this setup, this profile would enter the automation before their plan starts—but they would be held at the beginning of your workflow until the timestamp (their actual plan start date) is reached.

With the new attribute or segment trigger, profiles start the workflow as soon as they meet the trigger conditions. That means they won’t automatically wait until the plan start date unless you explicitly add that logic.

If you want profiles to wait until a future date, use a date-triggered automation. In some cases, adding a Wait until block at the start of your workflow (based on a timestamp like plan_start) can work too.

More on matchtimes

These examples include simple triggers, but if you want to calculate matchtimes for legacy segment triggers with multiple conditions, consider the following:

  • If the conditions are joined by an AND, the matchtime is the most recent of the conditions.
  • If the conditions are joined by an OR, the matchtime is the oldest of the conditions.

Attribute or segment

With the Attribute or Segment trigger, you can target a range of data through segments or quickly specify profile attributes to define your audience:

 You can only directly specify profile attributes

If you want to target event attributes, message data, object attributes, etc, you’d have to create a segment with that criteria.

Click Attribute or Segment to get started:

campaign-triggers-2024-attribute-or-segment.png
campaign-triggers-2024-attribute-or-segment.png

Then choose your trigger criteria. Choose whether profiles should meet All or At least one condition to start the automation. You can specify profile attribute conditions and/or segments.

campaign-triggers-condition-trigger.png
campaign-triggers-condition-trigger.png

 You cannot create automations with only a not in segment condition

If you’re triggering an automation using segments, the trigger must have at least one in condition or one profile attribute condition for you to save it. We do not trigger automations solely off of profiles not belonging to a segment.

Frequency

By default, profiles will enter your automation once. If your automation does not use a Filter, you can let customers enter your automation multiple times with the Frequency setting. When you enable Frequency settings, you’ll use one of these options to determine how often a profile can re-enter your automation:

  • Every re-match: people will enter this campaign when they match and re-match the trigger conditions; they must stop matching the trigger conditions then re-match the conditions to re-trigger the campaign.

    • They must re-match after they’ve exited the automation, which means if they re-match during the automation, they will not re-trigger the automation upon exiting. They would have to stop matching and re-match again after they exit the automation.
    • They must re-match after the minimum wait time has elapsed, as well. In the example below, the minimum wait time is 1 day.
    • For example, imagine an automation that triggers when someone joins the segment “Inactive for two weeks” and the frequency is “Every re-match.” When profiles enter that segment, they trigger an automation and receive a message. Later, they exit the automation. Then the minimum wait time elapses. To re-enter the automation, they must exit then re-enter the “Inactive for two weeks” segment (become active, then become inactive again).

segment-trigger-frequence-every-rematch.png
segment-trigger-frequence-every-rematch.png
  • At fixed intervals: people will repeat the campaign at a set interval, provided they match the conditions when the interval elapses.

    • A profile cannot re-trigger an automation while they have an active automation journey.
    • The automation will check if a profile can re-enter based on their initial journey.
      • For example, imagine an automation has a frequency of “At fixed intervals” and two days should elapse between entry and re-entry. If a profile’s first journey started March 22 at 11 am, then the automation will check for re-entry on March 24 at 11 am. If the journey is still active, a new journey won’t begin. The next time it will check is March 26 at 11 am. If they exited the automation at 9 am on the 26th, they would start a new journey. However, if they don’t exit until 12 pm, they won’t re-enter again until the 28th at 11 am.

 We start to measure the interval when a profile enters the automation

Even if your automation includes a delay, the interval window begins when a profile matches your automation conditions.

segment-trigger-frequence-fixed-interval.png
segment-trigger-frequence-fixed-interval.png

 Frequency settings apply to profiles you manually remove from automations

You can manually remove profiles from automations, but this won’t necessarily cause them to re-enter the automation. For example, if a profile can only enter an automation once ever, and you remove a profile from the automation, they’ll never re-enter the automation.

Deprecated: Segment change

 Use the attribute or segment trigger to create segment-triggerd automations

We’ve phased out our “Segment change” trigger. However, automations made with our legacy segment triggers will continue to run as expected! You can still edit the trigger and duplicate these automations too.

Segments are based on audience criteria—attributesA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. your audience has, events they’ve performed, making this one of our more flexible automation types.

Click Segment change to get started:

campaign-triggers-2024-segment-change.png
campaign-triggers-2024-segment-change.png

We’ll prompt you to choose one or more segments that your audience is in or not in. If you haven’t created a segment yet, you can click Create a new data-driven segment to set conditions for a new segment.

An image of the right hand panel that appears after you click Choose Segment on step 1 of creating a segment-triggered automation. The panel is titled Segment conditions and shows a dropdown selection of 'in' followed by an empty field with dropdown options including Create a new data-driven segment and a list of existing segments like Signed up.
An image of the right hand panel that appears after you click Choose Segment on step 1 of creating a segment-triggered automation. The panel is titled Segment conditions and shows a dropdown selection of 'in' followed by an empty field with dropdown options including Create a new data-driven segment and a list of existing segments like Signed up.

 You cannot create automations with only a not in condition

A segment-triggered automation must have at least one in condition for you to save it. We do not trigger automations solely off of profiles not belonging to a segment.

You can set multiple segments using and or or conditions. Use and to trigger automations only when profiles meet all of your conditions. Click + Add condition to create an and condition.

segment-triggers-and-conditions.png
segment-triggers-and-conditions.png

Use an or condition to trigger an automation based on a profile belonging to any of the segments. Add segments to the same field to create an or condition:

segment-trigger-or-condition.png
segment-trigger-or-condition.png

 You can use JSON dot notation in condition logic

If you store attributes or event data in JSON objects or arrays, you can use JSON dot notation in your branch conditions to evaluate these properties. Use array[] to represent any item in an array or array[0] to represent the first item in the array. See Storing and using JSON for more information about dot notation in Customer.io.

Filter

With segment-triggered automations, you can also add a segment filter. You should weave your segment filter criteria into your segment trigger conditions as much as possible, but if you find you cannot accomplish what you need without a segment trigger AND segment filter, please let us know! We want to account for this use case as we develop the next generation of automations.

Frequency

By default, profiles will enter your automation once. If your automation does not use a Filter, you can let customers enter your automation multiple times with the Frequency setting. When you enable Frequency settings, you’ll use one of these options to determine how often a profile can re-enter your automation:

  • Every re-match: people will enter this campaign when they match and re-match the trigger conditions; they must stop matching the trigger conditions then re-match the conditions to re-trigger the campaign.

    • They must re-match after they’ve exited the automation, which means if they re-match during the automation, they will not re-trigger the automation upon exiting. They would have to stop matching and re-match again after they exit the automation.
    • They must re-match after the minimum wait time has elapsed, as well. In the example below, the minimum wait time is 1 day.
    • For example, imagine an automation that triggers when someone joins the segment “Inactive for two weeks” and the frequency is “Every re-match.” When profiles enter that segment, they trigger an automation and receive a message. Later, they exit the automation. Then the minimum wait time elapses. To re-enter the automation, they must exit then re-enter the “Inactive for two weeks” segment (become active, then become inactive again).

segment-trigger-frequence-every-rematch.png
segment-trigger-frequence-every-rematch.png
  • At fixed intervals: people will repeat the campaign at a set interval, provided they match the conditions when the interval elapses.

    • A profile cannot re-trigger an automation while they have an active automation journey.
    • The automation will check if a profile can re-enter based on their initial journey.
      • For example, imagine an automation has a frequency of “At fixed intervals” and two days should elapse between entry and re-entry. If a profile’s first journey started March 22 at 11 am, then the automation will check for re-entry on March 24 at 11 am. If the journey is still active, a new journey won’t begin. The next time it will check is March 26 at 11 am. If they exited the automation at 9 am on the 26th, they would start a new journey. However, if they don’t exit until 12 pm, they won’t re-enter again until the 28th at 11 am.

 We start to measure the interval when a profile enters the automation

Even if your automation includes a delay, the interval window begins when a profile matches your automation conditions.

segment-trigger-frequence-fixed-interval.png
segment-trigger-frequence-fixed-interval.png

 Frequency settings apply to profiles you manually remove from automations

You can manually remove profiles from automations, but this won’t necessarily cause them to re-enter the automation. For example, if a profile can only enter an automation once ever, and you remove a profile from the automation, they’ll never re-enter the automation.

Object change

You can trigger an automation when an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. is updated in your workspace. While an object triggers the automation, only profiles move through it. See Audience below to define who enters the automation.

On the trigger step of setting up an automation, you will see a list of all object types in your workspace. Underneath each object type, you’ll see object triggers listed as “Object_name updated,” like “Account updated.”

 To use an object trigger, you must create at least one object.

If you select Object updated, you must specify which attributes to target. This type of automation triggers when specific attributes change, not when any attribute changes. For instance:

The trigger summary reads: 'Trigger when when account's attribute plan updates to be equal to premium. Add the profiles that are related to the account and their role is equal to admin. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'
The trigger summary reads: 'Trigger when when account's attribute plan updates to be equal to premium. Add the profiles that are related to the account and their role is equal to admin. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'

You can use a variety of operators like “equal to” or “exists.” You cannot use operators like greater than, less than, etc. If you need other operators, consider adding a segment filter or passing your information to Customer.io so the existing operators work.

 We only evaluate trigger conditions before a profile enters a journey

This means a profile could continue to move through your object-triggered automation if the object were deleted or their relationship to the object was removed or changed. If they shouldn’t, add filters to your automation (see below).

It also means messages could fail to send if you reference this deleted relationship or object in liquid, so make sure you provide a liquid fallback.

Frequency

For now, automations with custom object triggers only support the “every re-match” frequency. Stay tuned for more frequency options in upcoming releases.

Audience

You have the flexibility to decide who your audience is. The audience could be:

  • every profile related to the object
  • certain profiles related to the object based on profile or relationship attributes

 An object or relationship can’t fan out to more than 1,000 profiles.

If an update triggers journeys for more than 1,000 related profiles, none of them start a journey. You’ll see “Failed Journeys for Object/Relationship Automation” in your activity log. This limit is per trigger event, not per automation—your automation can have more than 1,000 total recipients as long as each individual trigger doesn’t fan out to more than 1,000 profiles.

Learn more about the fan-out limit.

Last, you’ll review your audience before you start your automation. Select whether the automation should trigger for current matches and future additions or only future additions. For instance, if you trigger an automation when the plan of an Account object changes to premium, selecting “Current profiles and future additions” means profiles that are already related to accounts with premium plans will enter.

campaign-triggers-object-updated-audience.png
campaign-triggers-object-updated-audience.png

 A profile can enter this automation more than once

If a profile is related to multiple objects that meet the trigger conditions, they enter the automation once for each qualifying object. For example, if three accounts related to the same profile update their plan to premium, that profile enters the automation three times—once per account. Keep this in mind when you design your workflow and messages.

Filters

You can apply filters to further refine who should enter and stay in the automation. We evaluate filters when the profile first meets the trigger criteria and before action items in your workflow. For example, if your automation is designed to nurture leads, you might filter out profiles that’ve already paid for your services.

Exit Conditions

You can decide when a profile exits an object-triggered automation. You can find these under Exit in Automation settings. You can choose that:

  • they never exit.
  • they only exit when they match the conversion criteria.
  • they exit when they stop matching filter criteria.
  • they exit when they stop matching filter criteria OR match the conversion criteria.

We evaluate exit conditions before every journey and before action items in your workflow. We do not evaluate whether profiles meet the trigger criteria after they’ve entered the automation.

Relationship change

You can trigger an automation based on a relationship - the association between an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. and a profile. While a relationship triggers the automation, only profiles move through it. See Audience below to define who enters the automation.

On the trigger step of setting up an automation, you will see a list of all object types in your account. Underneath each object type, you’ll see relationship triggers listed as “Profile added” or “Relationship changed.”

 To use a relationship trigger, you must create at least one object.

If you select Profile added, you can optionally refine the audience by relationship attributes to funnel the right profiles into the automation. Otherwise, the automation will trigger when any profile is added to any object within the specified object type.

The trigger Profile added was selected for the Account object type on the previous screen. This screen shows how to configure the trigger settings. The trigger summary reads, 'Trigger when a profile is added to an account, and their relationship's role is equal to admin. Add the profile that was added to the account. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'
The trigger Profile added was selected for the Account object type on the previous screen. This screen shows how to configure the trigger settings. The trigger summary reads, 'Trigger when a profile is added to an account, and their relationship's role is equal to admin. Add the profile that was added to the account. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'

If you select Relationship changed, you must specify which relationship attributes to target. For instance:

The trigger summary reads, 'Trigger when relationship attribute app_status changes to be equal to accepted. Add the profile whose relationship with the company was changed. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'
The trigger summary reads, 'Trigger when relationship attribute app_status changes to be equal to accepted. Add the profile whose relationship with the company was changed. Add the profile every time the conditions are met. Profiles enter the automation and move through the full automation.'

You can use a variety of operators like “equal to” or “exists.” You cannot use operators like greater than, less than, etc. If you need other operators, consider adding a segment filter or passing your information to Customer.io so the existing operators work.

You cannot target any change to a relationship; you must specify what a relationship attribute is specifically changing to or changing from (role is equal to admin or role is not equal to admin, for instance).

 We only evaluate trigger conditions before a profile enters a journey

This means a profile could continue to move through your relationship-triggered automation if the object were deleted or their relationship to the object was removed. For example, imagine an automation triggered by a relationship matching role equal to admin for an object. If a profile matches this criteria then their role changes to member, the profile would continue their journey. If they shouldn’t, add filters to your automation (see below).

It also means messages could fail to send if you reference this deleted relationship or object in liquid, so make sure you provide a liquid fallback.

Frequency

For now, automations with relationship triggers only support the “every re-match” frequency. Stay tuned for more frequency options in upcoming releases.

Audience

You have the flexibility to decide who your audience is. The audience could be:

  • the profile that was added to the object (default)
  • every profile in the object
  • certain profiles related to the object based on profile or relationship attributes

 An object or relationship can’t fan out to more than 1,000 profiles.

If an update triggers journeys for more than 1,000 related profiles, none of them start a journey. You’ll see “Failed Journeys for Object/Relationship Automation” in your activity log. This limit is per trigger event, not per automation—your automation can have more than 1,000 total recipients as long as each individual trigger doesn’t fan out to more than 1,000 profiles.

Learn more about the fan-out limit.

Last, you’ll review your audience before you start your automation. Select whether the automation should trigger for current matches and future additions or only future additions. For instance, if you trigger an automation when a profile is added to an Account as an Admin, selecting “Current profiles and future additions” means profiles that are already admins of an account will enter.

campaign-triggers-rel-updated-audience.png
campaign-triggers-rel-updated-audience.png

 A profile can enter this automation more than once

If a profile has multiple relationships that meet the trigger conditions, they enter the automation once for each qualifying relationship. For example, if a profile is added to three different accounts as an admin, they enter the automation three times—once per relationship. Keep this in mind when you design your workflow and messages.

Filters

You can apply filters to further refine who should enter and stay in the automation. We evaluate filters when the profile first meets the trigger criteria and before action items in your workflow. For example, if your automation is designed to nurture leads, you might filter out profiles that’ve already paid for your services.

Exit Conditions

You can decide when a profile exits a relationship-triggered automation. You can find these under Exit in Automation settings. You can choose that:

  • they never exit.
  • they only exit when they match the conversion criteria.
  • they exit when they stop matching filter criteria.
  • they exit when they stop matching filter criteria OR match the conversion criteria.

We evaluate exit conditions before every journey and before action items in your workflow. We do not evaluate whether profiles meet the trigger criteria after they’ve entered the automation.

Form submission

You can connect forms—Facebook Lead Ads, Jotform, Typeform, your own custom web forms, etc—to your workspace. You can trigger an automation when someone fills out your form. This can help you nurture new leads or respond to support requests.

When you select the When someone fills out a form on your website option, you can either connect a new form or select an existing form—if you’ve already added forms to your workspace.

trigger an automation when profiles submit a form
trigger an automation when profiles submit a form

Filters

You can apply segment-based filters to determine whether someone in the automation should receive messages. For example, if your automation is designed to nurture leads, you might filter out profiles that’ve already paid for your services.

Frequency

Much like event-triggered automations, a profile enters your automation every time they fill out your form by default. You can limit the automation frequency if you don’t want to send your audience an automation every time they fill out your form.

Toggle frequency to limit how often profiles move through your automation.

  • Once ever: profiles will only enter the automation the first time they fill out your form.
  • Once within a time period: profiles can only enter the automation once within a time period, no matter how many times they fill out your form.

Event

Event-triggered automations help you respond to your audience’s behavior in your app or on your website—like encouraging profiles to complete their purchase when they abandon your cart, or messaging profiles that visit a product page on your website to let them know when the product goes on sale.

When you use this kind of trigger, you can choose the event that you want to use to trigger your automation. If you don’t see the event, you can type the event name in the box. If the event occurred recently, click View instances to see recent event examples.

You can narrow your trigger criteria based on properties in your event. If you have a particular event attribute you want to use as a filter—like if you only want to target profiles that bought a specific product—click Add event data filter and set the event properties you want to match for your trigger.

campaign-event-trigger-filter.png
campaign-event-trigger-filter.png

 You can use JSON dot notation in condition logic

If you store attributes or event data in JSON objects or arrays, you can use JSON dot notation in your branch conditions to evaluate these properties. Use array[] to represent any item in an array or array[0] to represent the first item in the array. See Storing and using JSON for more information about dot notation in Customer.io.

 You can only preview the last 50 events

When you use an event filter, we’ll show you the last 50 occurrences of an event to help you preview profiles matching your event criteria. This limitation applies only to the preview as you set up your automation. WHen you start your automation, anybody who matches your criteria will still enter in your automation if they match the trigger criteria, regardless of this preview limitation.

Event triggers preview the latest 50 events

When you use an event filter, we’ll show you the latest 50 occurrences of an event within the last 30 days to help you preview profiles matching your event criteria. As you add filters, you’ll notice that we’ll show you the total number of events (and profiles) out of the 50 available preview events that would match your criteria.

This is to help you better understand who would trigger your automation, but it is not an accurate count of profiles that will trigger your automation!

This 50-event limitation only applies to the preview as you set up your automation. When you start your automation, anybody who matches your criteria will still enter in your automation.

A trigger preview event that shows you can view 23 instances of events that match your criteria.
A trigger preview event that shows you can view 23 instances of events that match your criteria.

Frequency

By default, a profile enters an event-based automation every time they perform the trigger event. You can limit the automation frequency if you don’t want to send your audience an automation every time they perform your event.

Toggle frequency to limit how many times profiles can move through automations and set your frequency options.

  • One time: profiles will only enter the automation the first time they perform the event. For example, if you’d like to congratulate someone the first time they complete a lesson in your eLearning app, you can use this setting. This way, you’ll ensure they don’t receive the email again once they’re a seasoned student and flying through lessons regularly.

  • On every event: profiles will enter the automation every time they perform the event.

  • Once within a time period: profiles will only receive the automation once within a time period. For example, you want to send an email to someone when they receive notifications in your app. You only want them to receive the email once a day, regardless of how many application notifications they receive. Setting Frequency to “at most once within 24 hours” will ensure that, no matter how many new notifications profiles get, they will only get an email once.

Important date

This option lets you trigger an automation based on a date-time attributeA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. that profiles in your audience have. The attribute must contain a date in either Unix timestamp or ISO 8601 format. If a profile doesn’t have this attribute, or the attribute isn’t in the right format, they’ll never trigger the automation.

You can trigger your automation using a relative or static date based on this attribute:

  • Relative: Remind your audience to renew their subscription 14 days before their subscription anniversary.
  • Static: Wish your audience a happy birthday on their birthdate.

When you set up a date-triggered automation, there are four things you need to choose. When you pick your date-time attribute, you’ll see a preview panel that lets you test your choices with profiles from your workspace.

  1. Determine how frequently profiles enter your automation. These values are all based on your date attribute.

    • Only once, on this date: A profile triggers the automation based on the entire date, including month, day, and year. This date must be in the future.
    • Every month: A person can trigger the campaign once per month on the day of the month in their date attribute. The month and year are ignored.

      For example, if the date attribute is June 5th, 1977, the automation will trigger every month on the 5th. If the current month doesn’t include that day (e.g. there is no September 31st) then Customer.io will send on the last day of the month.

    • Every year: A profile triggers the automation once per year on the month and day in their date attribute. The year is ignored. For example, if the date attribute is June 5th, 1977, the automation will trigger once per year on June 5th.
  2. Set whether to trigger your campaign on the exact date, or at an offset before or after.

    • on: Trigger the automation on the recurrence date
    • before: Numbers of days prior to the recurrence date to trigger the automation
    • after: number of days after the reccurence date to trigger the automation

  3. Pick your audience’s date-time attribute. Customer.io schedules your automation based on the date value in this attribute, but we don’t use the time. You’ll pick the time in the next step.

     Attributes updated on the same day as the automation

    When you set the Profile’s attribute value on the same day specified as the trigger, if it is set before the specified trigger time for the automation, it will fire on that same day since the date in the attribute match the criteria and the trigger time has not passed yet.

    Let’s say today is July 1st, 2020 and you update a Profile’s value for the trigger attribute to July 1st. If the time specifed in the trigger condition has already passed, the Profile will not trigger this automation today. For the automation to be triggered, the attribute value must be set before the specified trigger time for the automation. For example, if the automation is supposed to trigger at 1pm on the date, then the automation will not trigger if the attribute is updated at 2pm on the same date.
  4. Pick the time of day that you want to trigger this automation. We won’t use the time stored in the date attribute. But, if you store your audience’s timezone as an attribute, you can select the user's time zone to trigger your automation in your audience’s time zone.

Supported date formats

We can trigger automations based on a Unix timestamp or a date-time in the ISO 8601 format. These are the ISO 8601 date-time formats we support:

ISO 8601 FormatExample
YYYY-MM2024-03 (This will default to the first of the month.)
YYYY-MM-DD2023-11-15
YYYY-MM-DDThh:mm:ssZ2023-11-15T23:14:37Z
YYYYMMDDThh:mm:ssZ20231115T231437Z
YYYY-MM-DDThh:mm:ss.ms2007-11-22T12:30:22.321
YYYY-MM-DDThh:mm:ss+/-< UTC offset >2024-02-07T12:30:22-08:00

Nested date attributes

When picking the date attribute that will trigger your automation, you can also type in nested date-time attributes, such as appointments.follow_up_date or account_details.renewal_date.

Unfortunately, we cannot preview the number of profiles that will receive a message when you use a nested attribute. Instead, we’ll show you how many profiles have the parent attribute (i.e. appointments or account_details).

Webhook

Most automations are triggered by profiles, and profiles are the subjects of the automation—you set their attributes, send them messages, etc. Webhook-triggered automations are different: they’re triggered by data, and data (that may or may not be related to profiles in your audience) is the subject of the automation.

In general, you’ll use these automations to manipulate incoming data and associate it with profiles in your audience. For example, if profiles are interested in a product that’s out of stock, you might use a webhook to notify Customer.io when that item is back in stock. In your automation, you can send an event to everybody who was interested in the product, triggering an automation to let these profiles know that their product is back in stock!

When you set up an automation and select the Webhook option, you’ll get a webhook URL. You’ll provide this URL to the service that you want to collect data from.

the webhook-triggered automation trigger exposes a webhook URL
the webhook-triggered automation trigger exposes a webhook URL

Your automation runs whenever this URL is called. The data from your external service can take any shape. You’ll manipulate the data and associate it profiles as a part of your automation. This lets you perform Zapier-like transformations on your data without having to build an integration.

Right now, you can’t filter or otherwise limit webhook-triggered automation triggers within Customer.io. You’ll have to make sure that your external service is set up to call your webhook-triggered automation’s webhook URL with a relatively uniform data set and only when you want it to call the URL.

Because webhook-triggered automations aren’t associated with profiles—at least not directly—they don’t have many of the options that you’ll see in other types of automations. They have a much more streamlined workflow: data comes in, you convert it to the format you want, and the automation ends. You won’t set conversion criteria, a frequency, etc.

Change trigger type

Sometimes you’re building an automation and realize you want profiles to start a journey based on different criteria. That might mean updating a trigger to include an additional segment or changing the trigger type all together—like moving from an event-triggered automation to a segment-triggered one.

Changing trigger type can impact the rest of your workflow, and you’ll see warnings if the change could cause messages to fail or conditions to not evaluate. For instance, if an email included liquid that pulled in data from your event trigger, like the product a profile purchased, then you changed the trigger type, you’ll see a warning calling attention to the email you need to update.

change-trigger-type-warning-email.png
change-trigger-type-warning-email.png

Or if your workflow updates a profile’s attributes based on data in the event trigger, you’d see a warning calling attention to that action block.

change-trigger-type-warning-action.png
change-trigger-type-warning-action.png

You’ll also see these warnings in the review modal so you know to address them before you activate your automation.

change-trigger-type-review-modal.png
change-trigger-type-review-modal.png

To change the trigger type, go to your automation’s workflow:

  1. Select the trigger block.
  2. Click Change trigger type.
    change-trigger-type.png
    change-trigger-type.png
  3. Select the new trigger type.
  4. Fill in the trigger details.

You can only modify the trigger type when the automation is in a draft or stopped state. This ensures you have time to review and update any workflow items impacted by a change to your trigger.

Copied to clipboard!